package com.ruoyi.system.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.TypeMapper;
import com.ruoyi.system.domain.Type;
import com.ruoyi.system.service.ITypeService;

/**
 * 分类名Service业务层处理
 *
 * @author handsome
 * @date 2023-12-19
 */
@Service(value = "typeService")
public class TypeServiceImpl implements ITypeService {
    @Autowired
    private TypeMapper typeMapper;

    /**
     * 查询分类名
     *
     * @param typeID 分类名主键
     * @return 分类名
     */
    @Override
    public Type selectTypeByTypeID(Long typeID) {
        return typeMapper.selectTypeByTypeID(typeID);
    }

    @Override
    public Map<String, Long> selectTypeNum() {
        List<Map<String, Long>> list = typeMapper.selectTypeNum();
        Map<String, Long> result = new HashMap<>();
        for (Map<String, Long> longLongMap : list) {
            result.put(
                    String.valueOf(longLongMap.get("typeName")),
                    longLongMap.get("countNum")
            );
        }
        return result;
    }

    /**
     * 查询分类名列表
     *
     * @param type 分类名
     * @return 分类名
     */
    @Override
    public List<Type> selectTypeList(Type type) {
        return typeMapper.selectTypeList(type);
    }

    /**
     * 新增分类名
     *
     * @param type 分类名
     * @return 结果
     */
    @Override
    public int insertType(Type type) {
        return typeMapper.insertType(type);
    }

    /**
     * 修改分类名
     *
     * @param type 分类名
     * @return 结果
     */
    @Override
    public int updateType(Type type) {
        return typeMapper.updateType(type);
    }

    /**
     * 批量删除分类名
     *
     * @param typeIDs 需要删除的分类名主键
     * @return 结果
     */
    @Override
    public int deleteTypeByTypeIDs(Long[] typeIDs) {
        return typeMapper.deleteTypeByTypeIDs(typeIDs);
    }

    /**
     * 删除分类名信息
     *
     * @param typeID 分类名主键
     * @return 结果
     */
    @Override
    public int deleteTypeByTypeID(Long typeID) {
        return typeMapper.deleteTypeByTypeID(typeID);
    }
}
